package br.com.velp.sudecap.entidade;

import javax.persistence.*;

/**
 * <sumario>
 * <objetivo> "Rastreabilidade" </objetivo>
 * <autor> EDUARDO SANTOS DE OLIVEIRA </autor>
 * <versao>1.0.0.0</versao>
 * <data_criacao> 17.10.2012 </data_criacao>
 * <data_ultima_alteracao> N/A </data_ultima_alteracao>
 * <descricao> Bean Responsável Pelo Mapeamento da Tabela IMOVEL_EMPREENDIMENTO </descricao>
 * </sumario>
 */
@Entity
@Table(name = "IMOVEL_EMPREENDIMENTO")
public class ImovelEmpreendimento extends EntityBase{
    
    public static final Long serialVersionUID = 1L;
    
    @Id
    @SequenceGenerator(name = "SQ_ID_IMO_EMP", sequenceName = "SQ_ID_IMO_EMP", allocationSize = 1)
    @GeneratedValue(generator = "SQ_ID_IMO_EMP")
    @Column(name = "ID_IMOVEL_EMP", nullable = false, unique = true)                
    private Long id;
    
    @Column(name = "FINALIDADE_CADASTRO", nullable = false, length = 1)
    private String finalidadeCadastro;
    
    @Column(name = "AREA_DESAPROPRIADA", nullable = false)
    private Double areaDesapropriada;
    
    @Column(name = "AREA_REGISTRO")
    private Double areaRegistro;
    
    @Column(name = "AREA_CP_PL")
    private Double areaCpPl;
    
    @Column(name = "AREA_IPTU")
    private Double areaIptu;
    
    @ManyToOne(optional = false)
    @JoinColumn(name = "ID_IMOVEL")
    private Imovel imovel;
    
    @ManyToOne(optional = false)
    @JoinColumn(name = "ID_EMPREENDIMENTO")
    private Empreendimento empreendimento;
    
    @ManyToOne()
    @JoinColumn(name = "ID_TIPO_BEM")
    private TipoBem tipoBem;

    public ImovelEmpreendimento() {
    }

    public ImovelEmpreendimento(Long id) {
	this.id = id;
    }

    public Long getId() {
	return id;
    }

    public void setId(Long id) {
	this.id = id;
    }

    public String getFinalidadeCadastro() {
	return finalidadeCadastro;
    }

    public void setFinalidadeCadastro(String finalidadeCadastro) {
	this.finalidadeCadastro = finalidadeCadastro;
    }

    public Double getAreaCpPl() {
	return areaCpPl;
    }

    public void setAreaCpPl(Double areaCpPl) {
	this.areaCpPl = areaCpPl;
    }

    public Double getAreaDesapropriada() {
	return areaDesapropriada;
    }

    public void setAreaDesapropriada(Double areaDesapropriada) {
	this.areaDesapropriada = areaDesapropriada;
    }

    public Double getAreaIptu() {
	return areaIptu;
    }

    public void setAreaIptu(Double areaIptu) {
	this.areaIptu = areaIptu;
    }

    public Double getAreaRegistro() {
	return areaRegistro;
    }

    public void setAreaRegistro(Double areaRegistro) {
	this.areaRegistro = areaRegistro;
    }

    public Empreendimento getEmpreendimento() {
	return empreendimento;
    }

    public void setEmpreendimento(Empreendimento empreendimento) {
	this.empreendimento = empreendimento;
    }

    public Imovel getImovel() {
	return imovel;
    }

    public void setImovel(Imovel imovel) {
	this.imovel = imovel;
    }

    public TipoBem getTipoBem() {
	return tipoBem;
    }

    public void setTipoBem(TipoBem tipoBem) {
	this.tipoBem = tipoBem;
    }

    @Override
    public boolean equals(Object obj) {
	return genericEquals(obj);
    }

    @Override
    public int hashCode() {
	int hash = 7;
	hash = 41 * hash + (this.id != null ? this.id.hashCode() : 0);
	return hash;
    }
    
}
